<template>
  <div>
    <el-table
      :data="tableData"
      :span-method="spanMethodHandle"
      border
      style="width: 100%; margin-top: 20px"
    >
      <el-table-column prop="id" label="ID" width="180" align="center">
      </el-table-column>
      <el-table-column prop="name" label="姓名" align="center">
      </el-table-column>
      <el-table-column prop="amount1" label="数值 1（元）" align="center">
      </el-table-column>
      <el-table-column prop="amount2" label="数值 2（元）" align="center">
      </el-table-column>
      <el-table-column prop="amount3" label="数值 3（元）" align="center">
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  components: {},
  props: {},
  data() {
    return {
      tableData: [
        {
          id: "12987122",
          name: "王小虎",
          amount1: "234",
          amount2: "3.2",
          amount3: 10,
          positionId: 1,
        },
        {
          id: "12987123",
          name: "王小虎",
          amount1: "165",
          amount2: "4.43",
          amount3: 12,
          positionId: 1,
        },
        {
          id: "12987124",
          name: "王小虎",
          amount1: "324",
          amount2: "1.9",
          amount3: 9,
          positionId: 2,
        },
        {
          id: "12987125",
          name: "王小虎",
          amount1: "621",
          amount2: "2.2",
          amount3: 17,
          positionId: 2,
        },
        {
          id: "12987126",
          name: "王小虎",
          amount1: "539",
          amount2: "4.1",
          amount3: 15,
          positionId: 3,
        },
        {
          id: "12987126",
          name: "王小虎",
          amount1: "539",
          amount2: "4.1",
          amount3: 17,
          positionId: 3,
        },
        {
          id: "12987126",
          name: "王小虎",
          amount1: "539",
          amount2: "4.1",
          amount3: 17,
          positionId: 3,
        },
      ],
      spanArr: [],
      position: 0,
    };
  },
  created() {},
  mounted() {
    this.rowspan();
  },
  activated() {},
  updated() {},
  methods: {
    spanMethodHandle({ row, column, rowIndex, columnIndex }) {
      console.log("this.spanArr",this.spanArr)
    // 按照相同的属性合并-动态
      const arr = ["name", "amount1"]
      if (arr.indexOf(column.property) > -1) {
        const _row = this.spanArr[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col,
        };
      }
      // 自定义合并-静态
        // const arr = ["name", "amount1"];
      // if (arr.indexOf(column.property) > -1) {
      //   if (rowIndex % 3 === 0) {
      //     return {
      //       rowspan: 3,
      //       colspan: 1,
      //     };
      //   } else {
      //     return {
      //       rowspan: 0,
      //       colspan: 0,
      //     };
      //   }
      // }
    },
    rowspan() {
      //每次调用清空数据
      this.spanArr = [];
      this.position = 0;
      this.tableData.forEach((item, index) => {
        if (index === 0) {
          this.spanArr.push(1);
          this.position = 0;
        } else {
          // positionId 为需要合并查询的项
          if (
            this.tableData[index].positionId ===
            this.tableData[index - 1].positionId
          ) {
            this.spanArr[this.position] += 1;
            this.spanArr.push(0);
          } else {
            this.spanArr.push(1);
            this.position = index;
          }
        }
      });
    },
  },
  computed: {},
  watch: {},
};
</script>
<style scoped lang="scss"></style>
